package main

import (
	"fmt"
	"github.com/hashicorp/golang-lru"
)


func main() {
	kvch, err := lru.New(3) //长度为3的缓存
	fmt.Println(kvch, err)

	kvch.Add("1", "9")//{1：9，，}
	kvch.Add("2", "8")//{2：8，1：9，}
	kvch.Add("3", "7")//{3：7，2：8，1：9}
	kvch.Add("4", "6")//{4：6，3：7，2：8}
	kvch.Add("5", "5")//{5：5，4：6，3：7}
    fmt.Println("**********{5：5，4：6，3：7}********")
	fmt.Println(kvch.Get("1"))//缓存队列不存在该值
	fmt.Println(kvch.Get("2"))
	fmt.Println(kvch.Get("3"))//7-->{3：7，5：5，4：6}
	kvch.Add("6", "4")//{6：4，3：7，5：5}
	fmt.Println(kvch.Get("3"))//7
	fmt.Println(kvch.Get("4"))//nil
	l, _ := lru.New(128)
	for i := 0; i < 256; i++ {
		l.Add(i, nil)
	}
	if l.Len() != 128 {
		panic(fmt.Sprintf("bad len: %v", l.Len()))
	}

}




